package com.demo.jzoffer2;

import org.junit.Test;

import java.util.HashMap;

/**
 * @author gy
 * @date 2023/01/03
 */
public class Test0103_01 {

    /**
     * 在字符串 s 中找出第一个只出现一次的字符。如果没有，返回一个单空格。 s 只包含小写字母。
     *
     * 输入：s = "abaccdeff"
     * 输出：'b'
     *
     * 输入：s = ""
     * 输出：' '
     *
     * @param s
     * @return
     */
    public char firstUniqChar(String s) {
        HashMap<Character, Boolean> dic = new HashMap<>();
        char[] sc = s.toCharArray();
        for (char c : sc) {
            // 根据value的真假来判断
            // 第一次添加为 true，之后若还存在重复的key，则赋值false
            dic.put(c, !dic.containsKey(c));
        }
        for (char c : sc) {
            if (dic.get(c)) {
                return c;
            }
        }
        return ' ';
    }


    @Test
    public void m1() {
        String s = "loveleetcode";
        System.out.println(firstUniqChar(s));
    }

    @Test
    public void m2(){

    }

}
